package com.bzkj.basicinfo.mapper;

import com.bzkj.basicinfo.domain.ncc.NccBasicCustomer;
import com.bzkj.basicinfo.domain.ncc.dto.NccBasicCustomerDto;
import com.bzkj.basicinfo.domain.ncc.erp.CustomerBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface NccBasicCustomerMapper
{

    /**
     * 根据code查询ncc客户信息
     *
     * @param code
     * @return
     */
    NccBasicCustomer queryNccBasicCustomer(String code);

    /**
     * NCC客户信息-如果能根据code查询到，修改数据
     *
     * @param customer
     */
    void updateNccBasicCustomer(NccBasicCustomer customer);

    /**
     * NCC客户信息-如果不能根据code查询到，新增数据
     *
     * @param customer
     */
    void insertNccBasicCustomer(NccBasicCustomer customer);

    /**
     * ncc客户基础信息状态修改
     *
     * @Author wangzhichao
     * @Date 2024/12/05 09:53:42
     * @Param status 状态
     * @Param pkCustomer 唯一标识
     * @Param userName 修改人名称
     */
    int nccBasicCustomerEnableStatusUpdate(@Param("status") String status, @Param("pkCustomer") String pkCustomer, @Param("modifierName") String userName);

    /**
     * 根据pK_CUSTOMER修改客户信息
     *
     * @Author wangzhichao
     * @Date 2024/12/05 14:22:57
     * @Param entity
     */
    int nccBasicCustomerUpdate(NccBasicCustomer entity);

    /**
     * 根据条件查询数据
     *
     * @Author wangzhichao
     * @Date 2024/12/05 15:28:35
     * @Param dto 条件
     * @Param page 分页条件
     */
    List<NccBasicCustomer> findNccBasicCustomerDataPage(@Param("dto") NccBasicCustomerDto dto);

    List<String> findNccBasicCustomerName(String name);

    Set<String> findNccBasicpkMeasdocSetList(@Param("pkMeasdoc") List<String> pkMeasdoc);

    /**
     * 同步基础数据
     * @param customerBean 基础数据
     */
    void insertOrUpdate(@Param("item") CustomerBean customerBean);
}
